# -*- coding: utf-8 -*-
# @author: edgardeng
# @date:   2021-05-08
# @file:   
"""
 基于传输层TCP/IP协议接口socket实现的TCP发送json格式数据

 测试服务端-短连接
"""

from socket import *
from time import ctime

if __name__ == '__main__':

    # 基础参数(这个地址是服务端本机的ip和port)
    HOST = '127.0.0.1'
    PORT = 21725
    buffer_size = 2048
    ADDR = (HOST, PORT)

    # 创建服务端
    tcpSerSock = socket(AF_INET, SOCK_STREAM)
    # 绑定到本机地址和端口,开始监听
    tcpSerSock.bind(ADDR)
    # 定义并发数
    tcpSerSock.listen(1)

    while True:
        print('[server]: waiting for connection...')
        # 可以获取到连接到本机的服务端地址和嵌套字
        tcpCliSock, addr = tcpSerSock.accept()
        print('[server]: connnecting from:', addr)

        # 使用客户端嵌套字取得其中的数据信息
        data = tcpCliSock.recv(buffer_size)

        if not data:
            print("[server]: 连接中断,退出.")
            break

        if data == "exit":
            print("[server]: 命令中断,退出.")
            break

        # 利用客户端嵌套字给出反馈
        tcpCliSock.send(('[server]: <%s> success got the data : %s' % (ctime(), data)).encode())
        # 关闭本次请求连接(短连接)
        tcpCliSock.close()

    # 关闭服务端监听
    tcpSerSock.close()
